package com.ncdnapp.util;

import lombok.extern.slf4j.Slf4j;
import org.noear.snack.ONode;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author: chenbin
 * @Date: 2018-05-03
 * @Time: 17:55
 * @Description:
 */
@Slf4j
public class JsonUtil {
    /**
     * json字符串转对象
     *
     * @param str
     * @param classz
     * @param <T>
     * @return
     */
    public static <T> T toObj(String str, Class<T> classz) {
        try {
            T obj = ONode.deserialize(str, classz);
            return obj;
        } catch (Exception e) {
            log.error("", e);
        }
        return null;
    }

    /**
     * json 字符串转list对象
     *
     * @param str
     * @param classz
     * @param <T>
     * @return
     */
    public static <T> List<T> toObjList(String str, Class<T> classz) {
        try {
            List<T> list = ONode.deserialize(str, (new ArrayList<T>() {
            }).getClass());
            return list;
        } catch (Exception e) {
            log.error("", e);
        }
        return null;
    }

    /**
     * 对象转json字符串
     *
     * @param obj
     * @return
     */
    public static String toJsonString(Object obj) {
        try {
            String json = ONode.stringify(obj);
            return json;
        } catch (Exception e) {
            log.error("", e);
        }
        return null;
    }
}
